package com.example.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.example.model.dto.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 用户表
 *
 * @author yyyyjinying 1020066395@qq.com
 * @since 1.0-SNAPSHOT 2025-06-15
 */
@Data
@EqualsAndHashCode(callSuper = false) // 在比较两个对象是否相等时，只比较当前类的属性，不考虑父类的属性；在生成哈希码时，也只基于当前类的属性
@TableName("mdl_user")
public class MdlUserEntity extends BaseDTO {
    private static final long serialVersionUID = 1L;

    /**
     * 用户唯一ID
     */
    @TableId
    private Long id;
    /**
     * 微信开放ID
     */
    private String openid;
    /**
     * 微信UnionID（用于多应用用户统一）
     */
    private String unionid;
    /**
     * 微信登录会话密钥
     */
    private String sessionKey;
    /**
     * 用户名
     */
    private String username;
    /**
     * 法号
     */
    private String dharmaName;
    /**
     * 密码（建议加密存储）
     */
    private String password;
    /**
     * 手机号
     */
    private String phone;
    /**
     * 是否激活：0未激活，1激活
     */
    private Integer isActive;
    /**
     * 是否是会员：0不是，1是
     */
    private Integer isMember;
    /**
     * 会员等级（1:普通会员, 2:黄金会员, 3:白金会员等）
     */
    private Integer memberLevel;
    /**
     * 出生日期
     */
    private Date birthDate;
    /**
     * 省份
     */
    private String province;
    /**
     * 城市
     */
    private String city;
    /**
     * 区县
     */
    private String district;
    /**
     * 详细地址
     */
    private String detailAddress;
    /**
     * 性别：0男，1女
     */
    private Integer sex;
    /**
     * 头像URL
     */
    private String avatarUrl;
    /**
     * 创建时间
     */
    private Date createDate;
    /**
     * 更新时间
     */
    private Date updateDate;
    /**
     * 累计福报值
     */
    private Integer totalMerit;
}